1. Technical Field
This invention relates to the field of remote applications management and more particularly to a system, method and apparatus for remote management of manageable resources distributed across multiple application hosts.
2. Description of the Related Art
The advent of distributed computing has give rise to what has been dubbed a global crisis of complexity. Paradoxically, that complexity arises from the distributed systems which were intended to make IT departments more flexible. This flexibility has been achieved, but only at the expense of runtime system management issues, which have created a new bottleneck in applications development. In this respect, application management solutions have been developed in response to enterprise application users who have reported that while distributed applications are relatively easy to build, those same distributed enterprise applications are very difficult to administer in a production environment. Moreover, configuration and upgrade operations directed merely to portions of a distributed application are equally hard to manage.
Several attempts have been made to facilitate the management of application resources in distributed applications. For instance, application management software has been developed to provide a graphical view of a distributed application. The graphical view can permit the management of various components of the distributed application. Still, the same application management software has been developed in a platform-specific manner and does not share the portability of modern distributed applications developed using a platform-independent architecture.
Notably, an application management solution for a two-tier, client-server architecture has been developed using the platform-independent Java™ architecture. More particularly, the Java Management extension (“JMX”), defined in the JMX™ specification, define an architecture, design patterns, APIs and services for application and network management using the Java programming language. The JMX specification is a well-known set of specifications and development tools for managing Java environments and building third generation management solutions. The JMX specification has been defined in the document Java Management Extensions Instrumentation and Agent Specification, v1.0 published by Sun Microsystems, Inc. of Palo Alto, Calif. on May 3, 2000. The JMX specification is incorporated herein by reference.
FIG. 4 illustrates the JMX architecture as defined in the JMX specification. The JMX architecture is divided into three levels: the Instrumentation level, the Agent level and the Distributed Services level. The Instrumentation level includes manageable resources which have a management interface referred to as a managed bean (“MBean”). An MBean can include the set of all necessary information and controls that a management application can operate on the manageable resource. More particularly, the management interface of an MBean can be represented as valued attributes which may be accessed, operations which may be invoked, notifications which may be emitted, and the constructors for the MBean's Java class.
MBeans encapsulate attributes and operations through their public methods and follow design patterns for exposing them to an application manager. For example, a read-only attributed in a standard MBean can have merely a “getter” method, whereas “getter” and “setter” methods implement read-write access. An example of an exposed method could include a “shutdown( )” method for terminating the execution of the application.
In the JMX specification, the Agent level controls the manageable resources in a single Java Virtual Machine (“JVM”). More particularly, the Agent level contains the framework for communicating with the manageable resources as well as with the object container in which the resources can be instantiated. The Agent level also contains the framework for communicating with the Distributed Services level. The Distributed Services level interfaces with the Agent level remotely in order to perform management operations on the manageable resources. An example of such a management operation could include the “shutdown( )” method described above.
As implemented in the JMX specification, the Distributed Services layer resides in a JVM separate from the JVM of the Agent level and the Instrumentation level. Significantly, however, the Agent level and the Instrumentation level both resides in the same JVM. A single JMX connector provides the communicative link between the Distributed Services level and the Agent level. Consequently, though the present JMX specification describes an application management model adequate for use when all manageable resources reside in the same application host (a single JVM), in a distributed architecture the manageable resources typically reside across multiple application hosts (multiple JVMs). Thus, what is needed is a system, method and apparatus for remote management of an application distributed across multiple applications hosts.